<?php

namespace colciencias\Bundle\WebBundle\Entity;

use Doctrine\ORM\Mapping as ORM;

/**
 * Propuestas
 *
 * @ORM\Table(name="PROPUESTAS", indexes={@ORM\Index(name="IDX_B00FA86FE2C96A6D", columns={"CONVOCATORIAS_ID"}), @ORM\Index(name="IDX_B00FA86F26B37A0", columns={"GRUPOS_ID"})})
 * @ORM\Entity
 */
class Propuestas
{
    /**
     * @var integer
     *
     * @ORM\Column(name="DURACION_EN_MESES", type="integer", nullable=false)
     */
    private $duracionEnMeses;

    /**
     * @var string
     *
     * @ORM\Column(name="ESTADO", type="string", length=20, nullable=false)
     */
    private $estado;

    /**
     * @var string
     *
     * @ORM\Column(name="IDIOMA", type="string", length=15, nullable=true)
     */
    private $idioma;

    /**
     * @var string
     *
     * @ORM\Column(name="JUSTIFICACION_ESTADO", type="string", length=200, nullable=false)
     */
    private $justificacionEstado;

    /**
     * @var string
     *
     * @ORM\Column(name="LUGAR_DE_EJECUCION", type="string", length=150, nullable=false)
     */
    private $lugarDeEjecucion;

    /**
     * @var string
     *
     * @ORM\Column(name="PROPONENTE", type="string", length=50, nullable=true)
     */
    private $proponente;

    /**
     * @var string
     *
     * @ORM\Column(name="RECOMENDACION", type="string", length=20, nullable=true)
     */
    private $recomendacion;

    /**
     * @var string
     *
     * @ORM\Column(name="TITULO", type="string", length=200, nullable=false)
     */
    private $titulo;

    /**
     * @var integer
     *
     * @ORM\Column(name="ID", type="integer")
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="SEQUENCE")
     * @ORM\SequenceGenerator(sequenceName="PROPUESTAS_ID_seq", allocationSize=1, initialValue=1)
     */
    private $id;

    /**
     * @var \colciencias\Bundle\WebBundle\Entity\Convocatorias
     *
     * @ORM\ManyToOne(targetEntity="colciencias\Bundle\WebBundle\Entity\Convocatorias")
     * @ORM\JoinColumns({
     *   @ORM\JoinColumn(name="CONVOCATORIAS_ID", referencedColumnName="ID")
     * })
     */
    private $convocatorias;

    /**
     * @var \colciencias\Bundle\WebBundle\Entity\Grupos
     *
     * @ORM\ManyToOne(targetEntity="colciencias\Bundle\WebBundle\Entity\Grupos")
     * @ORM\JoinColumns({
     *   @ORM\JoinColumn(name="GRUPOS_ID", referencedColumnName="ID")
     * })
     */
    private $grupos;

    /**
     * @var \Doctrine\Common\Collections\Collection
     *
     * @ORM\ManyToMany(targetEntity="colciencias\Bundle\WebBundle\Entity\Areasconocimiento", mappedBy="propuestas")
     */
    private $areasconocimiento;

    /**
     * Constructor
     */
    public function __construct()
    {
        $this->areasconocimiento = new \Doctrine\Common\Collections\ArrayCollection();
    }


    /**
     * Set duracionEnMeses
     *
     * @param integer $duracionEnMeses
     * @return Propuestas
     */
    public function setDuracionEnMeses($duracionEnMeses)
    {
        $this->duracionEnMeses = $duracionEnMeses;

        return $this;
    }

    /**
     * Get duracionEnMeses
     *
     * @return integer 
     */
    public function getDuracionEnMeses()
    {
        return $this->duracionEnMeses;
    }

    /**
     * Set estado
     *
     * @param string $estado
     * @return Propuestas
     */
    public function setEstado($estado)
    {
        $this->estado = $estado;

        return $this;
    }

    /**
     * Get estado
     *
     * @return string 
     */
    public function getEstado()
    {
        return $this->estado;
    }

    /**
     * Set idioma
     *
     * @param string $idioma
     * @return Propuestas
     */
    public function setIdioma($idioma)
    {
        $this->idioma = $idioma;

        return $this;
    }

    /**
     * Get idioma
     *
     * @return string 
     */
    public function getIdioma()
    {
        return $this->idioma;
    }

    /**
     * Set justificacionEstado
     *
     * @param string $justificacionEstado
     * @return Propuestas
     */
    public function setJustificacionEstado($justificacionEstado)
    {
        $this->justificacionEstado = $justificacionEstado;

        return $this;
    }

    /**
     * Get justificacionEstado
     *
     * @return string 
     */
    public function getJustificacionEstado()
    {
        return $this->justificacionEstado;
    }

    /**
     * Set lugarDeEjecucion
     *
     * @param string $lugarDeEjecucion
     * @return Propuestas
     */
    public function setLugarDeEjecucion($lugarDeEjecucion)
    {
        $this->lugarDeEjecucion = $lugarDeEjecucion;

        return $this;
    }

    /**
     * Get lugarDeEjecucion
     *
     * @return string 
     */
    public function getLugarDeEjecucion()
    {
        return $this->lugarDeEjecucion;
    }

    /**
     * Set proponente
     *
     * @param string $proponente
     * @return Propuestas
     */
    public function setProponente($proponente)
    {
        $this->proponente = $proponente;

        return $this;
    }

    /**
     * Get proponente
     *
     * @return string 
     */
    public function getProponente()
    {
        return $this->proponente;
    }

    /**
     * Set recomendacion
     *
     * @param string $recomendacion
     * @return Propuestas
     */
    public function setRecomendacion($recomendacion)
    {
        $this->recomendacion = $recomendacion;

        return $this;
    }

    /**
     * Get recomendacion
     *
     * @return string 
     */
    public function getRecomendacion()
    {
        return $this->recomendacion;
    }

    /**
     * Set titulo
     *
     * @param string $titulo
     * @return Propuestas
     */
    public function setTitulo($titulo)
    {
        $this->titulo = $titulo;

        return $this;
    }

    /**
     * Get titulo
     *
     * @return string 
     */
    public function getTitulo()
    {
        return $this->titulo;
    }

    /**
     * Get id
     *
     * @return integer 
     */
    public function getId()
    {
        return $this->id;
    }

    /**
     * Set convocatorias
     *
     * @param \colciencias\Bundle\WebBundle\Entity\Convocatorias $convocatorias
     * @return Propuestas
     */
    public function setConvocatorias(\colciencias\Bundle\WebBundle\Entity\Convocatorias $convocatorias = null)
    {
        $this->convocatorias = $convocatorias;

        return $this;
    }

    /**
     * Get convocatorias
     *
     * @return \colciencias\Bundle\WebBundle\Entity\Convocatorias 
     */
    public function getConvocatorias()
    {
        return $this->convocatorias;
    }

    /**
     * Set grupos
     *
     * @param \colciencias\Bundle\WebBundle\Entity\Grupos $grupos
     * @return Propuestas
     */
    public function setGrupos(\colciencias\Bundle\WebBundle\Entity\Grupos $grupos = null)
    {
        $this->grupos = $grupos;

        return $this;
    }

    /**
     * Get grupos
     *
     * @return \colciencias\Bundle\WebBundle\Entity\Grupos 
     */
    public function getGrupos()
    {
        return $this->grupos;
    }

    /**
     * Add areasconocimiento
     *
     * @param \colciencias\Bundle\WebBundle\Entity\Areasconocimiento $areasconocimiento
     * @return Propuestas
     */
    public function addAreasconocimiento(\colciencias\Bundle\WebBundle\Entity\Areasconocimiento $areasconocimiento)
    {
        $this->areasconocimiento[] = $areasconocimiento;

        return $this;
    }

    /**
     * Remove areasconocimiento
     *
     * @param \colciencias\Bundle\WebBundle\Entity\Areasconocimiento $areasconocimiento
     */
    public function removeAreasconocimiento(\colciencias\Bundle\WebBundle\Entity\Areasconocimiento $areasconocimiento)
    {
        $this->areasconocimiento->removeElement($areasconocimiento);
    }

    /**
     * Get areasconocimiento
     *
     * @return \Doctrine\Common\Collections\Collection 
     */
    public function getAreasconocimiento()
    {
        return $this->areasconocimiento;
    }
}
